package jianzhioffer;

import java.lang.reflect.Type;
import java.util.Arrays;

/**
 * Author: Zhang Dongwei
 * Date: 2023/3/28 12:21
 * 请实现一个函数，把字符串 s 中的每个空格替换成"%20"
 */
public class offer_05_替换空格 {

    public static void main(String[] args) {

//        Integer i=1;
//        System.out.println(i.getClass().toString());  // class java.lang.Integer

        String s = "We are happy.";
//        System.out.println(s.getClass().toString());  // class java.lang.String

//        char[] cs = s.toCharArray();
//        System.out.println(cs);
//        System.out.println(cs.getClass().toString());
//        String s1 = cs.toString();
//        System.out.println(s1.getClass().toString());
//        for (int i=0; i<s.length(); i++){
//            System.out.println(s.charAt(i));
//        }
//        System.out.println(s.charAt(1));
        System.out.println(replaceSpace(s));
    }

//    调用函数，意义不大
    public static String replaceSpace1 (String s) {
        return s.replace(" ", "%20");
    }

//    效率很低
    public static String replaceSpace2(String s) {
        String res = "";
        for (int i=0; i<s.length(); i++){
            if (s.charAt(i)!=' ') res += s.charAt(i);
            else res += "%20";
        }
        return res;
    }

//    使用stringbuilder,效率还好
    public static String replaceSpace(String s) {
        StringBuilder res = new StringBuilder();
        for (Character c : s.toCharArray()){
            if (c == ' ') res.append("%20");
            else res.append(c);
        }
        return res.toString();
    }
}
